import Vue from 'vue';
import vuex from 'vuex';

Vue.use(vuex);

/**
 * 5、getters相当于计算属性，计算state生成新的数据
 *    （ps：根本就是计算属性一模一样的作用，就是为了防止每个组件调用的时候都要用计算属性过一遍）
 *
 *  子组件调用方法: {{$store.getters.myshow}}
 *
 */
export default new vuex.Store({
  modules: {
    component001: {
      state: {
        count: 22
      },
      mutations: {
        increment(state) {
          state.count++
        },
        sendmsg(state, {mycount}){
          state.count += mycount;
        }

      },
      actions: {
        _increment(context){
          context.commit('increment')
        },
        _sendmsg(context,{ mycount}){
          context.commit('sendmsg', {mycount})
        }
      },
      getters: {
        myshow(state) {
          return state.count + 100;
        }
      }

    }
  },
})
